from django.contrib import admin  # 导入Django的admin模块
from .models import Order, OrderItem  # 从当前目录的models.py文件中导入Order和OrderItem模型
from django.utils.html import format_html  # 导入Django的format_html函数，用于生成安全的HTML内容


# 定义一个内联admin类，用于在OrderAdmin中显示OrderItem
class OrderItemInline(admin.TabularInline):
    model = OrderItem  # 指定内联模型为OrderItem
    raw_id_fields = ['product']  # 使用原始ID字段来选择产品，提高性能


# 定义Order的Admin类
class OrderAdmin(admin.ModelAdmin):
    # 设置在admin列表页面显示的字段
    list_display = ['id', 'first_name', 'last_name', 'email', 'address', 'postal_code', 'city', 'paid', 'created', 'updated','Homepage']
    # 设置可过滤的字段
    list_filter = ['paid', 'created', 'updated']
    # 设置内联显示的模型
    inlines = [OrderItemInline]
    # 设置只读字段
    readonly_fields = ['Homepage']
    # 定义一个URL变量，用于生成链接
    url='http://127.0.0.1:8000'
    # 定义链接文本
    url_text='Homepage'
    # 定义一个方法，用于生成链接
    def Homepage(self, obj):
        # 使用format_html生成安全的HTML链接
        return format_html(u'<a href="{}">{}</a>'.format(self.url, self.url_text))
    # 允许Homepage字段包含HTML标签
    Homepage.allow_tags = True
    # 设置Homepage字段的短描述
    Homepage.short_description = "ColsName"
# 将Order模型注册到admin站点，并使用OrderAdmin进行管理
admin.site.register(Order, OrderAdmin)
